import { createApp } from 'vue';
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'

import router from './router';

import store from "@/store";
import { createPinia } from 'pinia'

import './style.css'
import App from './App.vue'
import { getCurrentRoutes } from './grants';

// 解决刷新时，路由配置丢失的问题；
// 当刷新（刷新时，sessionStorage中是有权限数据的）时，需要重新添加权限路由
if(sessionStorage.getItem("checkedkeys")){
    // 刷新时
    getCurrentRoutes(router);
}

const app = createApp(App);

app.use(router);
app.use(ElementPlus);
app.use(store);
app.use(createPinia());

app.mount('#app')


// const pubsub = new PubSub();

// // 订阅：相当于绑定事件
// pubsub.subscribe('user_add', (data, topic) => {
//   console.log('User added');
//   console.log('user data:', data);
// });


// // 发布：触发事件
// pubsub.publish("user_add","hi")


// let vm = new Vue();

// // 绑定事件
// vm.$on("myclick",(str)=>{

// })

// // 触发事件
// vm.$emit("myclick","hi")